home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1998 June / SGI Freeware 1998 June.iso / dist / fw_ATxgopher.idb / usr / freeware / src / xgopher.1.3 / MIT-Xos.h.z / MIT-Xos.h
C/C++ Source or Header  |  1998-01-21  |  4KB  |  172 lines

  1. /*
  2.  * =======================================================================
  3.  *     This file is as supplied by MIT in the X11R5 distribution
  4.  *     except for 1) having its name changed from Xos.h to MIT-Xos.h;
  5.  *     2) checking to not re-define macros if the system include files
  6.  *     already took care of this (e.g., index/rindex); and 3) adding
  7.  *     a check for ISC 3.0 in two places (symbol ISCX)
  8.  * =======================================================================
  9.  * $XConsortium: Xos.h,v 1.47 91/08/17 17:14:38 rws Exp $
  10.  * 
  11.  * Copyright 1987 by the Massachusetts Institute of Technology
  12.  *
  13.  * Permission to use, copy, modify, and distribute this software and its
  14.  * documentation for any purpose and without fee is hereby granted, provided 
  15.  * that the above copyright notice appear in all copies and that both that 
  16.  * copyright notice and this permission notice appear in supporting 
  17.  * documentation, and that the name of M.I.T. not be used in advertising
  18.  * or publicity pertaining to distribution of the software without specific, 
  19.  * written prior permission. M.I.T. makes no representations about the 
  20.  * suitability of this software for any purpose.  It is provided "as is"
  21.  * without express or implied warranty.
  22.  *
  23.  * The X Window System is a Trademark of MIT.
  24.  *
  25.  */
  26.  
  27. /* This is a collection of things to try and minimize system dependencies
  28.  * in a "signficant" number of source files.
  29.  */
  30.  
  31. #ifndef _XG_XOS_H_
  32. #define _XG_XOS_H_
  33.  
  34. #include "MIT-Xosdefs.h"
  35.  
  36. /*
  37.  * Get major data types (esp. caddr_t)
  38.  */
  39.  
  40. #ifdef USG
  41. #ifndef __TYPES__
  42. #ifdef CRAY
  43. #define word word_t
  44. #endif /* CRAY */
  45. #include <sys/types.h>            /* forgot to protect it... */
  46. #define __TYPES__
  47. #endif /* __TYPES__ */
  48. #else /* USG */
  49. #if defined(_POSIX_SOURCE) && defined(MOTOROLA)
  50. #undef _POSIX_SOURCE
  51. #include <sys/types.h>
  52. #define _POSIX_SOURCE
  53. #else
  54. #include <sys/types.h>
  55. #endif
  56. #endif /* USG */
  57.  
  58.  
  59. /*
  60.  * Just about everyone needs the strings routines.  We provide both forms here,
  61.  * index/rindex and strchr/strrchr, so any systems that don't provide them all
  62.  * need to have #defines here.
  63.  */
  64.  
  65. #ifndef X_NOT_STDC_ENV
  66. #include <string.h>
  67. #ifndef index
  68. #define index strchr
  69. #endif
  70. #ifndef rindex
  71. #define rindex strrchr
  72. #endif
  73. #else
  74. #ifdef SYSV
  75. #include <string.h>
  76. #ifndef index
  77. #define index strchr
  78. #endif
  79. #ifndef rindex
  80. #define rindex strrchr
  81. #endif
  82. #else
  83. #include <strings.h>
  84. #ifndef strchr
  85. #define strchr index
  86. #endif
  87. #ifndef strrchr
  88. #define strrchr rindex
  89. #endif
  90. #endif
  91. #endif
  92.  
  93.  
  94. /*
  95.  * Get open(2) constants
  96.  */
  97. #ifdef X_NOT_POSIX
  98. #include <fcntl.h>
  99. #ifdef USL
  100. #include <unistd.h>
  101. #endif /* USL */
  102. #ifdef CRAY
  103. #include <unistd.h>
  104. #endif /* CRAY */
  105. #ifdef MOTOROLA
  106. #include <unistd.h>
  107. #endif /* MOTOROLA */
  108. #ifdef SYSV386
  109. #include <unistd.h>
  110. #endif /* SYSV386 */
  111. #include <sys/file.h>
  112. #else /* X_NOT_POSIX */
  113. #if !defined(_POSIX_SOURCE) && defined(macII)
  114. #define _POSIX_SOURCE
  115. #include <fcntl.h>
  116. #undef _POSIX_SOURCE
  117. #else
  118. #include <fcntl.h>
  119. #endif
  120. #include <unistd.h>
  121. #endif /* X_NOT_POSIX else */
  122.  
  123. /*
  124.  * Get struct timeval
  125.  */
  126.  
  127. #ifdef SYSV
  128.  
  129. #ifndef USL
  130. #include <sys/time.h>
  131. #endif
  132. #include <time.h>
  133. #ifdef CRAY
  134. #undef word
  135. #endif /* CRAY */
  136. #if defined(USG) && !defined(CRAY) && !defined(MOTOROLA) && !defined(ISCX)
  137. struct timeval {
  138.     long tv_sec;
  139.     long tv_usec;
  140. };
  141. #if !defined(USL_SHARELIB) && !defined(ISCX)
  142. struct timezone {
  143.     int tz_minuteswest;
  144.     int tz_dsttime;
  145. };
  146. #endif /* USL_SHARELIB */
  147. #endif /* USG */
  148.  
  149. #else /* not SYSV */
  150.  
  151. #if defined(_POSIX_SOURCE) && defined(SVR4)
  152. /* need to omit _POSIX_SOURCE in order to get what we want in SVR4 */
  153. #undef _POSIX_SOURCE
  154. #include <sys/time.h>
  155. #define _POSIX_SOURCE
  156. #else
  157. #include <sys/time.h>
  158. #endif
  159.  
  160. #endif /* SYSV */
  161.  
  162. /* use POSIX name for signal */
  163. #if defined(X_NOT_POSIX) && defined(SYSV) && !defined(SIGCHLD)
  164. #define SIGCHLD SIGCLD
  165. #endif
  166.  
  167. #ifdef ISC
  168. #include <sys/bsdtypes.h>
  169. #endif
  170.  
  171. #endif /* _XG_XOS_H_ */
  172.